Technote 1086
Power Management & The Energy Saver API
è»ÉGÉlÉãÉMÅ[ê›íËÇÃäTóv
è»ÉGÉlÉãÉMÅ[ê›íËÇÕÅAMacintosh ÉvÉâÉbÉgÉtÉHÅ[ÉÄÇ…ÉCÉìÉvÉäÉÅÉìÉgÇ≥ÇÍǃǢÇÈÇ≥NjǥNjǻè»ÉGÉlÉãÉMÅ[ÉnÅ[ÉhÉEÉFÉAÇ‚É\ÉtÉgÉEÉFÉAÇêßå‰Ç∑ÇÈÇΩÇflÇÃàÍä—ǵÇΩï˚ñ@ÇíÒãüǵNjÇ∑ÅB
é¿ç€Ç…ÉTÉ|Å[ÉgÇ≥ÇÍÇÈã@î\ÇÕÉ}ÉVÉìÇÃê´î\Ç…ÇÊǡǃàŸÇ»ÇËÇ‹Ç∑Ç™ÅAí èÌÅAè»ÉGÉlÉãÉMÅ[ê›íËÇ≈ÇÕÅAéüÇÃÇÊǧǻï˚ñ@Ç≈ÉVÉXÉeÉÄÇÃìdóÕè¡îÔÇí·å∏Ç≥ÇπÇ‹Ç∑ÅB
- ÉfÉBÉXÉvÉåÉCÇÃÉXÉäÅ[Év/à√ì] - ÉfÉBÉXÉvÉåÉCÉÇÉjÉ^Ç…ãüããÇ∑ÇÈìdóÕÇí·å∏Ç≥ÇπÇ‹Ç∑ÅB
- ÉnÅ[ÉhÉfÉBÉXÉNÇÃâÒì]í‚é~ - ÉnÅ[ÉhÉfÉBÉXÉNÇÃÉÇÅ[É^Å[Çí‚é~ (ìdåπÇÉIÉtÇ…Ç∑ÇÈ) Ç∑ÇÈDZÇΔÇ…ÇÊǡǃè¡îÔìdóÕÇí·å∏Ç≥ÇπÇ‹Ç∑ÅB
- ÉAÉCÉhÉãéûÇÃÉVÉXÉeÉÄèIóπ - çÏãΔíÜÇÃÉfÅ[É^Çè¡é∏Ç∑ÇÈDZÇΔÇ»Ç≠ÅAÉvÉçÉOÉâÉÄÇégǡǃÉRÉìÉsÉÖÅ[É^ÇÃìdåπÇÉIÉtDžǵNjÇ∑ÅB
- ÉAÉCÉhÉãéûÇÃÉXÉäÅ[Év - ÉAÉCÉhÉãéûÇ…è»ìdóÕ (ÉXÉäÅ[Év) èÛë‘Ç…ì¸ÇËÇ‹Ç∑Ç™ÅAÉXÉäÅ[ÉvÇâèúÇ∑ÇÈÇΔÅAÇ∑njǂÇ≠å≥ÇÃèÛë‘Ç…ïúãAÇ≈Ç´Ç‹Ç∑ÅBǻǮÅAé¿ç€Ç…Ç«ÇÃÇÊǧǻÉXÉäÅ[ÉvèÛë‘Ç…ì¸ÇÈÇ©ÇÕÅAÉRÉìÉsÉÖÅ[É^Ç…ìãç⁄Ç≥ÇÍǃǢÇÈÉnÅ[ÉhÉEÉFÉAÇÃê´î\Ç…ÇÊǡǃàŸÇ»ÇËÇ‹Ç∑ÅB
- ãNìÆ/ÉVÉXÉeÉÄèIóπÇÃó\íË - ãNìÆÇÃó\íËÇÕÅAdžÇÁÇ©Ç∂Çflê›íËǵÇΩéûçèÇ…ÉVÉXÉeÉÄÇçƒãNìÆÇ∑ÇÈÇΩÇflÇ…égǢNjÇ∑ÅBDZÇÃã@î\ÇÉVÉXÉeÉÄèIóπÇÃó\íËÅAèëófiÇÃé©ìÆï€ë∂ÅAÇ®ÇÊÇ—ÉuÉbÉNÉ}Å[ÉNã@î\ÇΔëgÇ›çáÇÌÇπǃégópÇ∑ÇÈÇΔÅAñ{éøìIÇ»à”ñ°Ç≈ÇÃè»ÉGÉlÉãÉMÅ[ã@î\ÇíÒãüÇ≈Ç´ÇÈÇæÇØÇ»Ç≠ÅAÉVÉXÉeÉÄÇçƒãNìÆÇµÇΩÇΔǴDžLJîÒèÌÇ…ï÷óòÇ≈Ç∑ÅB
- èëófiÇÃé©ìÆï€ë∂ - DZÇÃã@î\Ç…ÇÊÇËÅAÉVÉXÉeÉÄèIóπéûÇ…ñºèÃñ¢ê›íËÇ‹ÇΩÇÕñ¢ï€ë∂ÇÃèëófiÇ™é©ìÆìIÇ…ï€ë∂Ç≥ÇÍÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅBDZÇÃÇΔÇ´ÅAÉÜÅ[ÉUÅ[ÇÃëÄçÏÇ‹ÇΩÇÕämîFÇÕïKóvdžÇËÇ‹ÇπÇÒÅB
- çêímÉTÉEÉìÉh - ÉVÉXÉeÉÄÇ™ÉXÉäÅ[ÉvÉÇÅ[ÉhÇ©ÇÁïúãAÇ∑ÇÈÇΔÇ´ÅAÉÜÅ[ÉUÇ™éwíËǵÇΩÉTÉEÉìÉhÇ™çƒê∂Ç≥ÇÍÇ‹Ç∑ÅBí èÌÅAÉÇÉjÉ^ÇÕà√ì]Ç≥ÇÍǃǢÇÈÇΩÇflÅAçêímÉTÉEÉìÉhÇ…ÇÊǡǃÅAÉÜÅ[ÉUÇÕÉVÉXÉeÉÄÇ™åªç›ÉAÉNÉeÉBÉuDžǻǡǃǢÇÈDZÇΔÇämîFÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
ìÆçÏÇÃëÂïîï™ÇÕÅAMac OS Çà Power Manager Ç‹ÇΩÇÕÇ≥NjǥNjǻ Macintosh êflìdÉnÅ[ÉhÉEÉFÉAÇ…ÇÊǡǃèàóùÇ≥ÇÍÇ‹Ç∑Ç™ÅAè»ÉGÉlÉãÉMÅ[ê›íËÇÕÅAǢǬNjÇΩÇÕÇ«ÇÃÇÊǧǻï˚ñ@Ç≈ǪÇÍǺÇÍÇÃìÆçÏÇé¿çsÇ∑ÇÈÇ©ÇåàíËÇ∑ÇÈÇΩÇflÇÃÉÅÉJÉjÉYÉÄÇÉÜÅ[ÉUÇ…íÒãüǵNjÇ∑ÅB
Ç‹ÇΩÅAè»ÉGÉlÉãÉMÅ[ê›íË API ÇÕÅAè»ÉGÉlÉãÉMÅ[ã@î\Ç÷ÇÃÉAÉNÉZÉXÇïKóvÇΔÇ∑ÇÈï°êîÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ëŒÇµÇƒÅAÉqÉÖÅ[É}ÉìÉCÉìÉ^ÉtÉFÅ[ÉXÇìØä˙Ç≥ÇπÇÈÇΩÇflÇÃï˚ñ@ÇíÒãüǵNjÇ∑ÅB
è»ÉGÉlÉãÉMÅ[ê›íËÇÃÉRÉìÉ|Å[ÉlÉìÉg
è»ÉGÉlÉãÉMÅ[ê›íËÇÕÅAé¿ç€Ç…ÇÕÉVÉXÉeÉÄã@î\ägí£ÇΔÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇΔǢǧ 2 ǬÇÃìΔóßǵÇΩÉRÉìÉ|Å[ÉlÉìÉgÇ©ÇÁç\ê¨Ç≥ÇÍǃǢNjÇ∑ÅB
- è»ÉGÉlÉãÉMÅ[ê›íËÉRÉìÉgÉçÅ[ÉãÉpÉlÉã - DZÇÃÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇÕÅAÉVÉXÉeÉÄÉÅÉÇÉäÇΔèâä˙ê›íËÉtÉ@ÉCÉãÇ…äiî[Ç≥ÇÍǃǢÇÈê›íËÇëÄçÏǵNjÇ∑ÅB
- è»ÉGÉlÉãÉMÅ[ê›íËã@î\ägí£ - DZÇÃã@î\ägí£ÇÕÅAèâä˙ê›íËÉtÉ@ÉCÉãÇ…äiî[Ç≥ÇÍǃǢÇÈê›íËÇégǡǃÅAñ⁄ìIÇÃè»ÉGÉlÉãÉMÅ[ìÆçÏÇÃé¿çsÇéwóflǵNjÇ∑ÅB
ê} 1 Ç…ÇÕÅAè»ÉGÉlÉãÉMÅ[ê›íËÇÃäeÉRÉìÉ|Å[ÉlÉìÉgÇÃä÷åWÇé¶ÇµÇ‹Ç∑ÅB
ê} 1Å@è»ÉGÉlÉãÉMÅ[ê›íËÇÃäTóv
íçà”:
è»ÉGÉlÉãÉMÅ[ê›íËÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇÕÅAé¿ç€Ç…ÇÕÉRÉìÉgÉçÅ[ÉãÉpÉlÉãèëófiÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBDZÇÍÇÕÅA'APPC' ÇΔǢǧì¡éÍÇ»ÉVÉOÉlÉ`ÉÉÇéùǬÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ÅASystem 7.5.2 à»ç~Çà Finder Ç≈ÇÕÅAÉVÉXÉeÉÄÉtÉHÉãÉ_ÇÃè„Ç…ÉhÉçÉbÉvÇ∑ÇÈÇΔÅAé©ìÆìIÇ…ÅgÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÅhÉtÉHÉãÉ_ÇÃíÜÇ…íuÇ©ÇÍÇ‹Ç∑ (ÉIÅ[ÉgÉãÅ[ÉgÇ≥ÇÍÇ‹Ç∑)ÅB
DZÇÃÉVÉOÉlÉ`ÉÉÇégǧÇΔÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈džÇËǻǙÇÁÅAìØéûÇ… Finder ÇÃÉIÅ[ÉgÉãÅ[Égã@î\ÇóòópÇ≈Ç´ÇÈÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇäJî≠Ç∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
|
è»ÉGÉlÉãÉMÅ[ê›íËÇ÷ÇÃÉAÉNÉZÉX
ÉAÉvÉäÉPÅ[ÉVÉáÉìLJÅAè»ÉGÉlÉãÉMÅ[ê›íËÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇΔìØólÇÃÉÅÉJÉjÉYÉÄÇégǡǃÅAè»ÉGÉlÉãÉMÅ[èâä˙ê›íËÉtÉ@ÉCÉãÇëÄçÏÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBDZÇÃèàóùÇÕÅAè»ÉGÉlÉãÉMÅ[ê›íË API ÇâÓǵǃé¿åªÇ≥ÇÍÇ‹Ç∑ÅBDZÇà API ÇÃñ⁄ìIÇÕÅAPower Manager Ç…ÇÊǡǃíÒãüÇ≥ÇÍǃǢǻǢçÇìxÇ»êflìdã@î\ÇAPIÇí Ç∂ǃÉTÉ|Å[ÉgÇ∑ÇÈDZÇΔÇΔÅAéùë±ìIÇ» PRAM ê›íËÇçsÇÌǻǢ Power Manager ä÷êîÇ…ëŒÇµÇƒïWèÄâªÇ≥ÇÍÇΩèâä˙ê›íËÉtÉ@ÉCÉãÇÃÉTÉ|Å[ÉgÇíÒãüÇ∑ÇÈDZÇΔDždžÇËÇ‹Ç∑ÅB
è»ÉGÉlÉãÉMÅ[ê›íËã@î\ägí£ÇÕÅAEgret Ç‹ÇΩÇÕ Cuda É}ÉCÉNÉçÉRÉìÉgÉçÅ[ÉâÇìãç⁄ǵÇΩÇ∑Ç◊ǃÇà Macintosh Ç…ëŒÇµÇƒé©ìÆìdåπÉIÉì/ÉIÉtã@î\ÇíÒãüǵNjÇ∑ÅBÇ‹ÇΩÅAÉfÉBÉXÉvÉåÉCÇÃà√ì]ÅAÉnÅ[ÉhÉfÉBÉXÉNÇÃâÒì]í‚é~ÅAÉXÉäÅ[ÉvÉÇÅ[ÉhÅAÇ®ÇÊǗDZÇÍÇÁÇ∑Ç◊ǃÇÃã@î\Ç≈égópÇ∑ÇÈÉIÉvÉVÉáÉìÇÃèâä˙ê›íËÇä«óùǵNjÇ∑ÅBèâä˙ê›íËÇÃéÊìæÇ®ÇÊÇ—ê›íËïœçXÇçsǧÇΩÇflÇÃåƒÇ—èoǵǂÅAìnÇ≥ÇÍÇΩèâä˙ê›íËÇ…ä‹Ç‹ÇÍÇÈê›íËì‡óeÇÉAÉNÉeÉBÉuÇ…Ç∑ÇÈÇΩÇflÇÃåƒÇ—èoǵǻǫǙópà”Ç≥ÇÍǃǢNjÇ∑ÅB
ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉfÉxÉçÉbÉpÇÕÅAìΔé©ÇÃã@î\Çç≈èâÇ©ÇÁçÏê¨Ç∑ÇÈÇÃÇ≈ÇÕÇ»Ç≠ÅAÇ≈Ç´ÇÈǩǨÇËDZÇÃè»ÉGÉlÉãÉMÅ[ê›íËã@î\ÇóòópÇ∑ÇÈÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ (è≠Ç»Ç≠ÇΔLJèâä˙ê›íËÇÃçXêVDžǬǢǃÇÕ)ÅBǪǧÇ∑ÇÍÇŒÅAîCà”ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈çsÇ¡ÇΩÉÜÅ[ÉUê›íËÇ™ëºÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ‚ÉRÉìÉgÉçÅ[ÉãÉpÉlÉãDžLJîΩâfÇ≥ÇÍÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅB
è»ÉGÉlÉãÉMÅ[ê›íË API Ç™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢÇÈǩǫǧǩÇÃîªíË
ì¡íËÇà Macintosh ÇÃÉÇÉfÉãÇ≈è»ÉGÉlÉãÉMÅ[ê›íË API Ç™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢÇÈǩǫǧǩÇîªíËÇ∑ÇÈÇ…ÇÕÅAÉQÉVÉÖÉ^ÉãÉgä÷êîÇégǡǃ 'wnkl' ÉZÉåÉNÉ^ÇÉ`ÉFÉbÉNǵÅAñflÇËílÇ™ non-nil Ç≈džÇÈǩǫǧǩÇí≤Ç◊Ç‹Ç∑ÅBñflÇËílÇ™ non-nil Ç≈džÇÍÇŒÅAè»ÉGÉlÉãÉMÅ[ê›íË API ÇÕÉçÅ[ÉhÇ≥ÇÍǃǢNjÇ∑ÅB
è»ÉGÉlÉãÉMÅ[ê›íË API ÇÃåƒÇ—èoǵ
è»ÉGÉlÉãÉMÅ[ê›íËÉ}ÉlÅ[ÉWÉÉÇÃë∂ç›Ç™ämîFÇ≈Ç´ÇΩÇÁÅAÉQÉVÉÖÉ^ÉãÉgÉZÉåÉNÉ^ 'wnkl' ÇÃñflÇËílÇâÓǵǃÅAè»ÉGÉlÉãÉMÅ[ê›íË API Ç…ÉAÉNÉZÉXÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBDZÇÃñflÇËílÇÕÅAç≈èâÇÃÉtÉBÅ[ÉãÉhÇ™ÉÅÉCÉìÉãÅ[É`ÉìÇ÷ÇÃÉ|ÉCÉìÉ^ÇΔǻǡǃǢÇÈÉfÅ[É^ç\ë¢ëÃÇ÷ÇÃÉnÉìÉhÉãÇ≈Ç∑ÅBDZÇÃÉãÅ[É`ÉìÇ÷ÇÃÉCÉìÉ^ÉtÉFÅ[ÉXÇÕéüÇÃÇÊǧDžǻÇËÇ‹Ç∑ÅB
typedef pascal long (*ESRoutineCallPtr)(short selector, long parm1, long parm2);
|
ÉfÉxÉçÉbÉpÇÃï÷ãXÇçló∂ǵǃÅADZÇà TECHNOTE Ç…ÇÕ EnergyServPubLib.c Ç®ÇÊÇ— EnergyServPub.h ÉtÉ@ÉCÉãÇ™ìYïtÇ≥ÇÍǃǢNjÇ∑ÅBDZÇÍÇÁÇÃÉtÉ@ÉCÉãÇégǡǃÅAè»ÉGÉlÉãÉMÅ[ê›íË API Ç…ÉAÉNÉZÉXǵǃÇ≠ÇæÇ≥Ç¢ÅB
è»ÉGÉlÉãÉMÅ[ê›íË API Ç™ÉçÅ[ÉhÇ≥ÇÍǃǢǃégópâ¬î\Ç≈džÇÈǩǫǧǩÇîªíËÇ∑ÇÈÇ…ÇÕÅAEnergyServPubLib Ç©ÇÁ ESGetINITVersion ä÷êîÇåƒÇ—èoÇ∑DZÇΔÇÇ®ä©ÇflǵNjÇ∑ÅBÉCÉìÉ^ÉtÉFÅ[ÉXÉRÅ[ÉhÇÕÅAìKêÿÇ≈à¿ëSÇ»É`ÉFÉbÉNÇé¿çsǵNjÇ∑ÅB
è»ÉGÉlÉãÉMÅ[ê›íË API
ESGlobals ç\ë¢ëÃ
è»ÉGÉlÉãÉMÅ[ê›íËã@î\ägí£ÇÕÅAàÍòAÇÃèâä˙ê›íËÉOÉçÅ[ÉoÉãÇä«óùǵNjÇ∑ÅBDZÇÍÇÁÇÃÉOÉçÅ[ÉoÉãÇÕÅAéüÇÃÇÊǧǻ ESGlobals ç\ë¢ëÃÇ≈íËã`Ç≥ÇÍǃǢNjÇ∑ÅB
typedef struct {
short version; // ÉfÅ[É^ç\ë¢ëà version (1)
long EnergySaverFeatures; // ES ã@î\ (Ç‹ÇæégópÇ≥ÇÍǃǢǻǢ)
// ÉAÉCÉhÉãéûÇÃÉXÉäÅ[ÉvÇΔÉVÉXÉeÉÄèIóπÇÃÉ^ÉCÉ~ÉìÉO
unsigned long dimIdleTime; // ÉfÉBÉXÉvÉåÉCÇÃÉXÉäÅ[ÉvÇ‹Ç≈ÇÃéûä‘ (ï™íPà )
unsigned long spinDownIdleTime; // HD âÒì]í‚é~Ç‹Ç≈ÇÃéûä‘ (ï™íPà )
//ÉfÉXÉNÉgÉbÉvÇÕ 30ï™à»è„Ç≈Ç»ÇØÇÍnjǻÇÁǻǢ
unsigned long sleepIdleTime; // ÉVÉXÉeÉÄÉXÉäÅ[ÉvÇ‹Ç≈ÇÃéûä‘ (ï™íPà )
short idleFlags; // ÉTÉ|Å[ÉgÇ≥ÇÍǃǢÇÈÉAÉCÉhÉãéûÇÃã@î\
// 0001 = dimIdleTime ÇóLå¯Ç…
// 0002 = spinDownIdleTime ÇóLå¯Ç…
// 0008 = ÉXÉäÅ[ÉvÇÃë„ÇÌÇËÇ…ÉVÉXÉeÉÄèIóπ
// 0010 = HD ÇâÒì]í‚é~DžǵǻǢ
// 0020 = ìdåπÇÉIÉtDžǵÇΩå„Ç≈çƒãNìÆ
short reserved1;
short reserved2;
// ÉXÉäÅ[ÉvÇΔÉVÉXÉeÉÄèIóπÇÃÉXÉPÉWÉÖÅ[Éã
// DZÇÍÇÁÇÕåflëO 0 éû (é¿ç€Ç…ÇÕ 12:00:01 AM) ÇãNì_ÇΔÇ∑ÇÈï™íPà ÇÃéûä‘ÅB
// éüÇÃÉtÉBÅ[ÉãÉhÇÕÅAè»ÉGÉlÉãÉMÅ[ê›íËÉAÉvÉäÉPÅ[ÉVÉáÉì HI Ç…ÇÊǡǃÇÃÇ›égópÇ≥ÇÍÇÈÅB
// ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕÅASDxxxTime Ç®ÇÊÇ— SWUxxxTime ÉtÉBÅ[ÉãÉhÇégǡǃÅA
// ÉVÉXÉeÉÄèIóπÇΔÉXÉäÅ[ÉvâèúÇÃéûçèÇèàóùÇ∑ÇÈïKóvǙdžÇÈÅB
unsigned long mainWUTime; // ÉRÉìÉsÉÖÅ[É^Ç™ãNìÆÇ∑ÇÈéûçè
unsigned long mainSDTime; // ÉRÉìÉsÉÖÅ[É^Ç™èIóπÇ∑ÇÈéûçè
// ãNìÆÇ‹ÇΩÇÕÉVÉXÉeÉÄèIóπÇ™óLå¯Ç…Ç»ÇÈójì˙ÇéwíËÇ∑ÇÈÉrÉbÉgÉtÉBÅ[ÉãÉh
short WUFields; // ãNìÆ
short SDFields; // èIóπ
// åéójì˙ = 0x0001
// âŒójì˙ = 0x0002
// êÖójì˙ = 0x0004
// ñÿójì˙ = 0x0008
// ã‡ójì˙ = 0x0010
// ìyójì˙ = 0x0020
// ì˙ójì˙ = 0x0040
// ñàì˙ = 0x007F
// óLå¯ = 0x0080
// éüÇÃÉtÉBÅ[ÉãÉhÇ≈ÇÕÅAäeójì˙DžǬǢǃÅAãNìÆÇΔèIóπÇçsǧï°êîÇÃéûçèÇ
// éwíËÇ≈Ç´ÇÈÅBì¡íËÇÃójì˙ÇëŒè€Ç…ï°êîÇÃó\íËÇê›íËÇ∑ÇÈïKóvǙǻǢèÍçáÇÕÅA
// Ç∑Ç◊ǃÇà WU ÉtÉBÅ[ÉãÉhÇ mainWUTime Ç…ê›íËǵÅAÇ∑Ç◊ǃÇà SD ÉtÉBÅ[ÉãÉhÇ
// mainSDTime Ç…ê›íËÇ∑ÇÈÅB
// èIóπéûçè
unsigned long SDMonTime;
unsigned long SDTueTime;
unsigned long SDWedTime;
unsigned long SDThuTime;
unsigned long SDFriTime;
unsigned long SDSatTime;
unsigned long SDSunTime;
// ãNìÆéûçè
unsigned long WUMonTime;
unsigned long WUTueTime;
unsigned long WUWedTime;
unsigned long WUThuTime;
unsigned long WUFriTime;
unsigned long WUSatTime;
unsigned long WUSunTime;
// ÉXÉäÅ[Évèâä˙ê›íËèÓïÒ
short reserved3;
short WUSoundResID; // ÉXÉäÅ[ÉvÇâèúÇ∑ÇÈÇΔÇ´Ç…çƒê∂Ç∑ÇÈ 'snd ' Çà ID
short reserved4;
// ÉVÉXÉeÉÄãNìÆèâä˙ê›íËèÓïÒ
short reserved5;
short AppFlags; // èÌÇ…êVǵǢèâä˙ê›íËÉtÉ@ÉCÉãÇ… 0 Çê›íËÇ∑ÇÈ
short NonComplianceFlag; // É}ÉVÉìÇÃÉXÉäÅ[ÉvéûÇ… 30W à»è„Ç™è¡îÔÇ≥ÇÍÇÈèÍçáÇ…ÉZÉbÉg
// ÉVÉXÉeÉÄèIóπèâä˙ê›íËèÓïÒ
short SDIdleTime;
short SDNotifyFlags; // çêímÉIÉvÉVÉáÉì
// 0020 = ÉVÉXÉeÉÄèIóπéûÇ…çêím
// 0001 = ÉAÉCÉRÉìÇÃì_ñ≈
// 0002 = ÉeÉLÉXÉgÉÅÉbÉZÅ[ÉWÇï\é¶
// 0004 = ÉTÉEÉìÉhÇÃçƒê∂
// 0008 = ÉtÉ@ÉCÉãÇÃï€ë∂
// 8008 = ÉXÉäÅ[ÉvéûÇ…ï€ë∂ǵǻǢ
// 0400 = ÉXÉäÅ[ÉvâèúéûÇ…çêímÉTÉEÉìÉhÇçƒê∂
// 0800 = ìdòbÇÃêMçÜåüèoéûÇ…ÉXÉäÅ[Évâèú
// 1000 = ìdåπÉâÉCÉgÇÃì_ñ≈ (É|Å[É^ÉuÉãÉÇÉfÉã)
// 2000 = ÉXÉäÅ[ÉvéûÇ…è¡âπ
short SDNotifyDelayTime;
short SDSoundResID; // ÉVÉXÉeÉÄèIóπéûÇ…çƒê∂Ç∑ÇÈ 'snd ' Çà ID
short reserved6;
short reserved7;
// è»ÉGÉlÉãÉMÅ[àÍî èâä˙ê›íËèÓïÒ
long reserved8;
Boolean reserved9;
} ESGlobals, *ESGlobalsPtr, **ESGlobalsHand;
|
ESLoadPreferences
ESLoadPreferences ÇÕÅAèâä˙ê›íËÉtÉ@ÉCÉãÇ©ÇÁåªç›ÇÃê›íËÇçƒÉçÅ[ÉhǵÅAè»ÉGÉlÉãÉMÅ[ê›íËÉOÉçÅ[ÉoÉãÇçXêVǵNjÇ∑ÅBÇ‹ÇΩÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈égópÇ∑ÇÈÇΩÇflÇ…ê›íËÇÃÉRÉsÅ[Çï‘ǵNjÇ∑ÅB
PROTOTYPE
OSErr ESLoadPreferences(ESGlobalsPtr thePrefs);
thePrefs ESGlobals ç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
RESULT CODE
File Read ErrorsÅAMemory ErrorsÅAES Errors
íçà”
DZÇÍÇÕÉVÉXÉeÉÄãNìÆéûÇ…è»ÉGÉlÉãÉMÅ[ê›íËã@î\ägí£Ç…ÇÊǡǃåƒÇ—èoÇ≥ÇÍÇ‹Ç∑ÅBê›íËílÇï€ë∂Ç≥ÇÍǃǢÇÈèâä˙ê›íËÇ…ñflǪǧÇΔÇ∑ÇÈèÍçáà»äOÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ©ÇÁDZÇÃåƒÇ—èoǵÇçsÇÌǻǢÇ≈Ç≠ÇæÇ≥Ç¢ÅB
ESLoadPreferences ÇÕÉ}ÉVÉìÇÃÉXÉeÅ[É^ÉXÇçXêVǵNjÇπÇÒÅBê›íËílÇóLå¯Ç…Ç∑ÇÈÇ…ÇÕÅADZÇÃåƒÇ—èoǵÇçsÇ¡ÇΩå„Ç≈ ESRefreshSettings() ÇåƒÇ—èoÇ∑ïKóvǙdžÇËÇ‹Ç∑ÅB
|
ESGetPreferences
ESGetPreferences ÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈égópÇ∑ÇÈÇΩÇflÇ…åªç›ÇÃê›íËÇÃÉRÉsÅ[Çï‘ǵNjÇ∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇ©ÇÁÅAÇ∑Ç◊ǃÇÃè»ÉGÉlÉãÉMÅ[ê›íËèÓïÒÇ…ëŒÇ∑ÇÈåªç›ÇÃÉÜÅ[ÉUê›íËílÇéÊìæÇ∑ÇÈÇ…ÇÕÅAí èÌDZÇÃåƒÇ—èoǵÇégǢNjÇ∑ÅB
PROTOTYPE
OSErr ESGetPreferences(ESGlobalsPtr thePrefs);
thePrefs ESGlobals ç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
RESULT CODE
Memory ErrorsÅAES Errors
ESSetPreferences
ESSetPreferences ÇÕÅAè»ÉGÉlÉãÉMÅ[ê›íËÉOÉçÅ[ÉoÉãÇ…ìnÇ≥ÇÍÇÈê›íËÇÉRÉsÅ[ǵNjÇ∑ÅB
PROTOTYPE
OSErr ESSetPreferences(ESGlobalsPtr thePrefs);
thePrefs ESGlobals ç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
RESULT CODE
Memory ErrorsÅAES Errors
íçà”
ESSetPreferences ÇÕÅAPower Manager ÇåƒÇ—èoǵǃê›íËÇóLå¯Ç…Ç∑ÇÈÇÌÇØÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBÇ‹ÇΩÅAêVǵǢãNìÆÇ‚èIóπÇÃéûçèÇê›íËÇ∑ÇÈDZÇΔLJdžÇËÇ‹ÇπÇÒÅBDZÇÍÇåƒÇ—èoǵÇΩå„Ç≈ÅAESRefreshSettings() ÇåƒÇ—èoǵÅAêVǵǢê›íËÇóLå¯Ç…Ç∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
|
ESRefreshSettings
ESRefreshSettings ÇÕÅAåªç›ÇÃê›íËÇÉAÉNÉeÉBÉuDžǵÅAǪÇÃÇΩÇflÇ…ïKóvÇ»Ç∑Ç◊ǃÇà Power Manager åƒÇ—èoǵÇé¿çsǵNjÇ∑ÅBÇ‹ÇΩÅAåªç›ÇÃçêímê›íËÇé¿çsÇ∑ÇÈÇΩÇflÇ…ãNìÆÇ®ÇÊÇ—èIóπÉ^ÉXÉNÇ≈ïKóvÇΔÇ»ÇÈLJÇÃÇÇ∑Ç◊ǃÉCÉìÉXÉgÅ[ÉãǵNjÇ∑ÅB
PROTOTYPE
OSErr ESRefreshSettings();
RESULT CODE
ES Errors
ESSavePreferences
ESSavePreferences ÇÕ 3 ǬÇÃèàóùÇé¿çsǵNjÇ∑ÅBÇ‹Ç∏ÅAESSetPreferences() ÇåƒÇ—èoǵǃÅAìnÇ≥ÇÍÇΩê›íËÇì]ëóǵNjÇ∑ÅBÇ≥ÇÁÇ…ÅAESRefreshSettings() ÇåƒÇ—èoǵǃÅAǪÇÍÇÁÇÃê›íËÇÉAÉNÉeÉBÉuDžǵNjÇ∑ÅBç≈å„Ç…ÅAǪÇÍÇÁÇÃê›íËÇèâä˙ê›íËÉtÉ@ÉCÉãÇ…ï€ë∂ǵÅAÉuÅ[ÉgÇåJÇËï‘ǵǃLJǪÇÍÇÁÇÃê›íËÇ™ï€éùÇ≥ÇÍÇÈÇÊǧDžǵNjÇ∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇ©ÇÁè»ÉGÉlÉãÉMÅ[ê›íËÇ…éùë±ìIÇ»çXêVÇâ¡Ç¶ÇÈÇ…ÇÕÅAí èÌDZÇÃåƒÇ—èoǵÇégǢNjÇ∑ÅB
PROTOTYPE
OSErr ESSavePreferences(ESGlobalsPtr thePrefs);
thePrefs ESGlobals ç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
RESULT CODE
File ErrorsÅAMemory ErrorsÅAES Errors
íçà”
ESGlobals ÉåÉRÅ[ÉhÇà WUSoundResID Ç‹ÇΩÇÕ SDSoundResID ÉtÉBÅ[ÉãÉhÇ≈ snd ÉäÉ\Å[ÉXÇéwíËÇ∑ÇÈÇΔÇ´ÇÕÅAǪÇÍÇÁÇÃÉäÉ\Å[ÉXÇ™åªç›ÇÃÉäÉ\Å[ÉXÉ`ÉFÅ[Éìì‡Ç…ë∂ç›ÇµÇƒÇ¢ÇÈDZÇΔÇämîFǵǃÇ≠ÇæÇ≥Ç¢ÅBDZÇÃèàóùÇÕèdóvÇ≈Ç∑ÅBÇ»Ç∫Ç»ÇÁÅAESSavePreferences ÇÕDZÇÍÇÁÇÃÉäÉ\Å[ÉXÇÉVÉXÉeÉÄÉqÅ[Évì‡Ç…ÉçÅ[ÉhÅAÉfÉ^ÉbÉ`ÅAÇ®ÇÊÇ—ÉRÉsÅ[Ç∑ÇÈÇ©ÇÁÇ≈Ç∑ÅB
|
ESAddNoteProc
ESAddNoteProc ÇégǧÇΔÅAè»ÉGÉlÉãÉMÅ[ê›íËí ímâûìöÉvÉçÉVÅ[ÉWÉÉ (Energy Saver notification response procedure) ÇÉCÉìÉXÉgÅ[ÉãÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBDZÇà Notifier ÇÕÅAè»ÉGÉlÉãÉMÅ[èâä˙ê›íËÇ™ì«Ç›èëÇ´Ç≥ÇÍÇÈDZÇΔÇÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…í ímÇ∑ÇÈÇΩÇflÇ…égǶNjÇ∑ÅB
PROTOTYPE
OSErr ESAddNoteProc(ESNotifyProcPtr theProc, long data);
theProc í ímâûìöÉvÉçÉVÅ[ÉWÉÉÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
data ÉfÅ[É^ÉvÉçÉVÅ[ÉWÉÉÇ…ìnÇ∑ÇΩÇflÇÃÉÜÅ[ÉUíËã`éQèΔÅB
RESULT CODE
ES Errors
ä÷òAçÄñ⁄
è»ÉGÉlÉãÉMÅ[ê›íËí ímä÷êîÇΔ ESRemoveNoteProc ä÷êîÅB
ESRemoveNoteProc
ESRemoveNoteProc ÇégǧÇΔÅAè»ÉGÉlÉãÉMÅ[ê›íËí ímâûìöÉvÉçÉVÅ[ÉWÉÉ (Energy Saver notification response procedure) ÇçÌèúÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
PROTOTYPE
OSErr ESRemoveNoteProc(ESNotifyProcPtr theProc);
theProc í ímâûìöÉvÉçÉVÅ[ÉWÉÉÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
RESULT CODE
ES Errors
ä÷òAçÄñ⁄
è»ÉGÉlÉãÉMÅ[ê›íËí ímä÷êîÇΔ ESAddNoteProc ä÷êîÅB
è»ÉGÉlÉãÉMÅ[ê›íËí ímä÷êî (Energy Saver Notification Function)
ESAddNoteProc ä÷êîÇ…ÇÊǡǃÉCÉìÉXÉgÅ[ÉãÇçsǧÇΔÅAí ímÉvÉçÉVÅ[ÉWÉÉÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™è»ÉGÉlÉãÉMÅ[èâä˙ê›íËÇ…ÉAÉNÉZÉXǵÇÊǧÇΔÇ∑ÇÈÇΩÇ—Ç…åƒÇ—èoÇ≥ÇÍÇ‹Ç∑ÅB
DZÇà Notifier ÇÕÅAè»ÉGÉlÉãÉMÅ[èâä˙ê›íËÇ™ì«Ç›èoÇ≥ÇÍÅAǪÇÍÇ™ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ï‘Ç≥ÇÍÇÈëOÇ…ÅAxNoteESDataReq ÉZÉåÉNÉ^ÇégǡǃåƒÇ—èoÇ≥ÇÍÇ‹Ç∑ÅB
Ç‹ÇΩÅAÇ¢Ç∏ÇÍÇ©ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ xNoteNewESData ÉZÉåÉNÉ^Çégǡǃè»ÉGÉlÉãÉMÅ[ê›íËã@î\ägí£Ç…êVǵǢèâä˙ê›íËÇÉRÉsÅ[Ç∑ÇÈÇΔǴDžLJí ímÇ™çsÇÌÇÍÇ‹Ç∑ÅBDZÇÃÇΔÇ´ÅAÉOÉçÅ[ÉoÉãÇÉRÉsÅ[ǵÇΩÉfÅ[É^ÇïœçXÇ∑ÇÈDZÇΔÇÕÇ≈Ç´Ç‹Ç∑Ç™ÅAǪÇÍÇ™ìKópÇ≥ÇÍÇÈëOÇ…ïœçXÇçsǢNjÇ∑ÅB
DZÇÃä÷êîÇégǧÇΔÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕ ESGlobals ÇÃï\é¶ÇìÆìIÇ…çXêVǵÇΩÇËÅAÉfÅ[É^ílÇÃÉtÉBÉãÉ^èàóùÇé¿çsÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
PROTOTYPE
pascal long MyESNotifyProc (short selector, ESGlobalsPtr theData);
selector î≠ê∂ǵÇΩìÆçÏÇÃÉ^ÉCÉvÇé¶Ç∑ílÅB
DZÇÃÉtÉBÅ[ÉãÉhÇÃà”ñ°Ç…ǬǢǃÇÕÅAéüÇÃê‡ñæÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB
thePrefs ESGlobals ç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
ê‡ñæ
éüÇ…ÅAóLå¯Ç»ìÆçÏÇÃÉ^ÉCÉvÇé¶ÇµÇ‹Ç∑ÅB
ílñº |
íl |
ê‡ñæ |
xNoteNewESData |
1 |
êVǵǢ ESGlobals Ç™èëÇ´èoÇ≥ÇÍÇΩÅB |
xNoteESDataReq |
2 |
ESGlobals Ç™ÉäÉNÉGÉXÉgÇ≥ÇÍÇΩÅB |
ESRestoreDefaults
ESRestoreDefaults ÇÕÅAÉVÉXÉeÉÄÇÃê›íËÇÅAã@î\ägí£ÇÃÉäÉ\Å[ÉXÉfÅ[É^Ç…äiî[Ç≥ÇÍǃǢÇÈÉ}ÉVÉìÇ…àÀë∂ǵÇΩÉfÉtÉHÉãÉgÇÃê›íËÇ…ñflÇ∑ÇΩÇflÇ…égǢNjÇ∑ÅBè»ÉGÉlÉãÉMÅ[ê›íËÇÉCÉìÉXÉgÅ[ÉãéûÇÃÉfÉtÉHÉãÉgÇÃê›íËÇ…ñflǵÇΩÇ¢ÇΔÇ´Ç…ÇÕÅADZÇÃåƒÇ—èoǵÇégǡǃÇ≠ÇæÇ≥Ç¢ÅB
Ç‹ÇΩÅAESGlobals ÇÃÉRÉsÅ[ÇéÊìæÇµÇƒÅAǪÇÍÇÁÇÃÉfÉtÉHÉãÉgÇÃì‡óeÇämîFÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBESGlobals ÇÃéÊìæÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇà HI ÇçXêVǵÅAåªç›ÇÃÉ}ÉVÉìÇÃÉXÉeÅ[É^ÉXÇîΩâfÇ≥ÇπÇÈÇΩÇflÇ…ñóßÇøÇ‹Ç∑ÅB
DZÇÃä÷êîÇÕÅAApple èÉê≥ÇÃÅgè»ó™ílÇ…ñflÇ∑ÅhÉRÉ}ÉìÉhÇ…ëŒâûÇ∑ÇÈã@î\Çé¿åªÇ∑ÇÈÇΩÇflÇ…égǧDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅB
PROTOTYPE
OSErr ESRestoreDefaults(ESGlobalsPtr thePrefs);
thePrefs ESGlobals ç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
RESULT CODE
Memory ErrorsÅAES Errors
ESGetUnsavedFolder
DZÇÃåƒÇ—èoǵÇÕÅAé©ìÆï€ë∂ã@î\Ç≈égópÇ∑ÇÈÅgñºèÃñ¢ê›íËèëófiÅhÇï€ë∂Ç∑ÇÈÉtÉHÉãÉ_Ç÷ÇÃÉpÉXñºÇéÊìæÇ∑ÇÈÇΩÇflÇ…égǢNjÇ∑ÅB
PROTOTYPE
OSErr ESGetUnsavedFolder(Ptr theString);
theString ñºèÃñ¢ê›íËèëófiÇï€ë∂Ç∑ÇÈÉtÉHÉãÉ_ÇÃåªç›ÇÃÉpÉXñºÇ™ÉRÉsÅ[Ç≥ÇÍÇÈï∂éöóÒÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
RESULT CODE
Memory ErrorsÅAES Errors
ESSetUnsavedFolder
ESSetUnsavedFolder Ç≈ÇÕÅAé©ìÆï€ë∂ã@î\Ç≈égópÇ∑ÇÈñºèÃñ¢ê›íËèëófiÇï€ë∂Ç∑ÇÈÉtÉHÉãÉ_Ç÷ÇÃÉpÉXñºÇê›íËÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
PROTOTYPE
OSErr ESSetUnsavedFolder(Ptr theString);
theString égópÇ∑ÇÈñºèÃñ¢ê›íËèëófiÉtÉHÉãÉ_ÇÃÉpÉXñºÇä‹Çfiï∂éöóÒÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
RESULT CODE
Memory ErrorsÅAES Errors
ESGetINITVersion
DZÇÃåƒÇ—èoǵÇÕÅAÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢÇÈè»ÉGÉlÉãÉMÅ[ê›íËã@î\ägí£ÉtÉ@ÉCÉãÇÃåªç›ÇÃÉoÅ[ÉWÉáÉìî‘çÜÇéÊìæÇ∑ÇÈÇΩÇflÇ…égǢNjÇ∑ÅBDZÇÃåƒÇ—èoǵÇÕÅAìKêÿÇ»ÉoÅ[ÉWÉáÉìÇÃè»ÉGÉlÉãÉMÅ[ã@î\ägí£ÇégópǵǃǢÇÈǩǫǧǩåüèÿÇ∑ÇÈÇΔÇ´Ç…égǢNjÇ∑ÅB
PROTOTYPE
OSErr ESGetINITVersion(Handle* theVers);
theVers ÉoÅ[ÉWÉáÉìç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
RESULT CODE
ES Errors
óvñÒ
êiâªÇë±ÇØÇÈ Macintosh ÉvÉâÉbÉgÉtÉHÅ[ÉÄÇ≈ÅAè»ÉGÉlÉãÉMÅ[ê›íË API ÇÕêflìdã@î\ÇÃäƒéãÇΔêßå‰ÇçsǧÇΩÇflÇÃàÍä—ǵÇΩï˚ñ@ÇíÒãüǵNjÇ∑ÅBÇ≥ÇÁÇ…ÅAè»ÉGÉlÉãÉMÅ[ê›íË API ÇÕÅAÉTÅ[ÉhÉpÅ[ÉeÉBêªÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…è»ÉGÉlÉãÉMÅ[ê›íËÇóòópÇ∑ÇÈÇΩÇflÇÃÉ`ÉÉÉìÉXÇó^ǶNjÇ∑ÅB
çXêVì˙: 1997 îN 3 åé 18 ì˙
|